In communication protocols, receiving nodes acknowledge receipt of data frames transmitted by transmitting nodes. This is generally done by sending an acknowledgment (ACK) frame after each received data frame.
This is for example the case with wireless networks implementing the IEEE 802.11 standard which relies on a CSMA/CA (standing for Carrier Sense Multiple Access with Collision Avoidance) contention-based mechanism.
In IEEE 802.11e standard providing quality of service enhancements to make more efficient use of the wireless channel, an optional feature, called Block ACK or block acknowledgment, has been proposed to allow several data frames to be transmitted by a transmitting node before an ACK frame is returned by the receiving node. In some implementations, the transmitting node sends a Block ACK request frame to the receiving node once the several data frames have been transmitted. In such situation, only one signalling ACK frame is thus needed to acknowledge a block of frames.
This optional feature increases communication efficiency since every ACK frame has a significant overhead for radio synchronization.
An improvement of the above standard, known as IEEE 802.11n standard, proposes two frame aggregation schemes that make it possible to transmit several data frames of a same traffic stream (such as voice, video and best effort data, associated with specific traffic specification) in a burst using an aggregated frame.
The two aggregation schemes, Mac Service Data Units (MSDU) aggregation (namely A-MSDU) and Message Protocol Data Unit (MPDU) aggregation (namely A-MPDU), aggregate multiple MAC service data units (MSDUs or MAC data frame) following the order by which the MSDUs are input in a transmission queue or buffer. Both aggregation methods reduce the overhead to only a single radio preamble for each frame transmission.
With such aggregation schemes, Block ACK has become mandatory, and the Block ACK frame returned by the receiving node thus includes an acknowledgement bitmap that covers a larger number of data frames.
In practice, the transmission queue or buffer from which MSDUs are output to form an aggregated frame is liable to store data frames having different acknowledgment policies in a same process of acknowledgment, for example first-type frames associated with an acknowledgment policy requiring acknowledgment and second-type frames associated with an acknowledgment policy requiring no acknowledgment. In other words, the aggregated frame mixes first-type frames and second-type frames depending on the order in which they are input in the transmission queue or buffer (TX FIFO).
To appropriately designate the frames to be acknowledged to the receiving node, the above IEEE 802.11n standard provides that the Block ACK request frame includes a “block ACK starting sequence control” value that usually indicates the sequence number of the first (i.e. the oldest one regarding the time sequence of input in the transmission buffer TX FIFO) frame in the aggregated frame. Note that the sequence number is a number incremented by one (1) at each new frame transmitted.
According to IEEE 802.11 standard, all the frames starting from the “block ACK starting sequence control” and covered by the acknowledgment bitmap have to be acknowledged, regardless they are of the first or second type (i.e. no matter they require acknowledgment or not). The receiving node thus fills the acknowledgement bitmap for each of these data frames.
As just described, the above-described Block ACK mechanism is session oriented. This results in that independent acknowledgment policies cannot be applied to each individual data frame of the aggregated frame as explained previously.
This mechanism which may concerns a wide variety of communication wireless networks leads to several drawbacks.
First, this mechanism leads to retransmitting non-received or erroneously received second-type frames that are covered by the Block ACK request frame (i.e. acknowledgment thereof is requested), whereas they should not require acknowledgment. This results in waste of network bandwidth.
Second, at the receiving node, this mechanism has an impact on the frames that follows the first non-received or erroneously received frame. In particular, it suspends transmission of such frames to an upper layer, usually from the Medium Access Control (MAC) OSI-sub-layer to the Logical Link Control (LLC) OSI-sub-layer.
This is particularly detrimental to latency, for example for audio/video applications, in case the first non-received or erroneously received frame is a second-type frame requiring no acknowledgment within the transmitting node but for which an acknowledgment is required given the session-oriented Block ACK request frame. This limitation prevents correctly received audio/video data to be delivered immediately to the upper stack layer. This limitation is known as the head-of-line blocking phenomenon.
The present invention has been devised to address at least one of the foregoing concerns.